package com.tjsiqi.dao;

import com.tjsiqi.Vo.*;
import com.tjsiqi.beans.PageQuery;
import com.tjsiqi.dto.SendCountDto;
import com.tjsiqi.dto.SendCountDtoM;
import com.tjsiqi.model.JblSendTruckOUT;
import com.tjsiqi.model.JblSendTruckOUTEXP;
import com.tjsiqi.model.JblSendTruckOUTKey;
import com.tjsiqi.param.SendCountParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface JblSendTruckOUTMapper {
    int deleteByPrimaryKey(JblSendTruckOUTKey key);

    int insert(JblSendTruckOUT record);

    int insertSelective(JblSendTruckOUT record);

    JblSendTruckOUT selectByPrimaryKey(JblSendTruckOUTKey key);

    int updateByPrimaryKeySelective(JblSendTruckOUT record);

    int updateByPrimaryKey(JblSendTruckOUT record);

    int getSendCountByCustomer(@Param("sendCountDto") SendCountDto sendCountDto);

    List<SendCustomerVo> getPageListBysendCountDto(@Param("sendCountDto") SendCountDto sendCountDto, @Param("page") PageQuery page);

    int getSendCountByTruck(@Param("sendCountDto") SendCountDto sendCountDto);

    List<SendTruckVo> getPageListByTruck(@Param("sendCountDto") SendCountDto sendCountDto, @Param("page") PageQuery page);

    int getSendCountBySender(@Param("sendCountDto") SendCountDto sendCountDto);

    List<SendSenderVo> getPageListBySender(@Param("sendCountDto") SendCountDto sendCountDto, @Param("page")PageQuery page);

    int getSendCountByOperator(@Param("sendCountDto") SendCountDto sendCountDto);

    List<SendOperatorVo> getPageListByOperator(@Param("sendCountDto") SendCountDto sendCountDto, @Param("page")PageQuery page);

    int getSendCountByLevel(@Param("sendCountDto")SendCountDto sendCountDto);

    List<SendLevelVo> getPageListByLevel(@Param("sendCountDto")SendCountDto sendCountDto);

    Double getSendCountByProLine(@Param("sendCountDto")SendCountDto sendCountDto);

    List<SendProLineVo> getPageListByProLine(@Param("sendCountDto")SendCountDto sendCountDto);

    int getSendCountByProUnit(@Param("sendCountDto")SendCountDto sendCountDto);

    List<SendProUnitVo> getPageListByProUnit(@Param("sendCountDto")SendCountDto sendCountDto, @Param("page")PageQuery page);

    int getSendCountByLinkMan(@Param("sendCountDto")SendCountDto sendCountDto);

    List<SendLinkManVo> getPageListByLinkMan(@Param("sendCountDto")SendCountDto sendCountDto, @Param("page")PageQuery page);

    List<String> getPageListByPro(@Param("sendCountDto")SendCountDto sendCountDto,@Param("proUnit") String proUnit);

    List<String> getPageListByProLinkMan(@Param("sendCountDto")SendCountDto sendCountDto, @Param("proLinkMan")String proLinkMan);

    int getSendOrder(@Param("sendCountDto")SendCountDto sendCountDto);

    List<JblSendTruckOUT> getPageList(@Param("sendCountDto")SendCountDto sendCountDto, @Param("page")PageQuery page);

    List<JblSendTruckOUTEXP> exportByParam(@Param("sendCountDto")SendCountDto sendCountDto);

    int getSendCountByCustomerM(@Param("sendCountDtoM")SendCountDtoM sendCountDtoM);

    List<SendCustomerVoM> getPageListByCustomerM(@Param("sendCountDtoM")SendCountDtoM sendCountDtoM, @Param("page")PageQuery page);

    int getSendCountByNameM(@Param("sendCountDtoM")SendCountDtoM sendCountDtoM);

    List<SendNameVoM> getPageListByNameM(@Param("sendCountDtoM")SendCountDtoM sendCountDtoM, @Param("page")PageQuery page);

    int getSendCountByJbzM(@Param("sendCountDtoM")SendCountDtoM sendCountDtoM);

    List<SendJbzVoM> getPageListByJbzM(@Param("sendCountDtoM")SendCountDtoM sendCountDtoM, @Param("page")PageQuery page);

    int removeByParam(@Param("sendCountParam") SendCountParam sendCountParam);
}